package com.bidevalution.business.service;

import com.bidevalution.dao.entity.BeSectionStep;
import com.bidevalution.service.layout.ColumnHeader;

import java.util.List;
import java.util.Map;

/**
 * 方法配置-列表中的动态列里面配置的class需要实现这个接口
 * @author huyiqi
 * @date 2020/4/13
 */
public interface DynamicColumnDataSource {

    String CODE_FORMAT = "dynamic_column_%s";

    /**
     * 获取动态列头部
     * @param step 当前步骤
     * @param header 当前动态列配置信息
     * @return 返回若干动态列头部
     */
    List<ColumnHeader> getDynamicColumnHead(BeSectionStep step, ColumnHeader header);

    /**
     * 获取动态列数据
     * 将动态列数据塞到原始数据中
     *
     * @param step 当前步骤
     * @param header 当前动态列配置信息
     * @param data 根据sql查出来的原始数据
     * @param expertId 专家id
     */
    void getDynamicColumnData(BeSectionStep step, ColumnHeader header, List<Map<String, Object>> data, String expertId);
}
